FILE fqName:<root> fileName:/castToTypeParameter.kt
  FUN name:castFun visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:<root>.castFun.T flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='FUN name:castFun visibility:public modality:FINAL <T> (x:kotlin.Any) returnType:<root>.castFun.T flags:[]'
        TYPE_OP type=<root>.castFun.T origin=CAST typeOperand=<root>.castFun.T
          typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
          GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]' type=kotlin.Any origin=null
  FUN name:castExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:<root>.castExtFun.T flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
    BLOCK_BODY
      RETURN type=kotlin.Nothing from='FUN name:castExtFun visibility:public modality:FINAL <T> ($receiver:kotlin.Any) returnType:<root>.castExtFun.T flags:[]'
        TYPE_OP type=<root>.castExtFun.T origin=CAST typeOperand=<root>.castExtFun.T
          typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
          GET_VAR 'VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]' type=kotlin.Any origin=null
  PROPERTY name:castExtVal visibility:public modality:FINAL flags:[val]
    FUN name:<get-castExtVal> visibility:public modality:FINAL <T> ($receiver:<root>.<get-castExtVal>.T) returnType:<root>.<get-castExtVal>.T flags:[]
      correspondingProperty: PROPERTY name:castExtVal visibility:public modality:FINAL flags:[val]
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
      $receiver: VALUE_PARAMETER name:<this> type:<root>.<get-castExtVal>.T flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN name:<get-castExtVal> visibility:public modality:FINAL <T> ($receiver:<root>.<get-castExtVal>.T) returnType:<root>.<get-castExtVal>.T flags:[]'
          TYPE_OP type=<root>.<get-castExtVal>.T origin=CAST typeOperand=<root>.<get-castExtVal>.T
            typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
            GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.<get-castExtVal>.T flags:[]' type=<root>.<get-castExtVal>.T origin=null
  CLASS CLASS name:Host modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    CONSTRUCTOR visibility:public <> () returnType:<root>.Host<<root>.Host.T> flags:[primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
    FUN name:castMemberFun visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, x:kotlin.Any) returnType:<root>.Host.T flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
      VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN name:castMemberFun visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, x:kotlin.Any) returnType:<root>.Host.T flags:[]'
          TYPE_OP type=<root>.Host.T origin=CAST typeOperand=<root>.Host.T
            typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
            GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]' type=kotlin.Any origin=null
    FUN name:castGenericMemberFun visibility:public modality:FINAL <TF> ($this:<root>.Host<<root>.Host.T>, x:kotlin.Any) returnType:<root>.Host.castGenericMemberFun.TF flags:[]
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
      VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN name:castGenericMemberFun visibility:public modality:FINAL <TF> ($this:<root>.Host<<root>.Host.T>, x:kotlin.Any) returnType:<root>.Host.castGenericMemberFun.TF flags:[]'
          TYPE_OP type=<root>.Host.castGenericMemberFun.TF origin=CAST typeOperand=<root>.Host.castGenericMemberFun.TF
            typeOperand: TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
            GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.Any flags:[]' type=kotlin.Any origin=null
    FUN name:castMemberExtFun visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.T flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
      $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN name:castMemberExtFun visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.T flags:[]'
          TYPE_OP type=<root>.Host.T origin=CAST typeOperand=<root>.Host.T
            typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
            GET_VAR 'VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]' type=kotlin.Any origin=null
    FUN name:castGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.castGenericMemberExtFun.TF flags:[]
      TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
      $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
      $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN name:castGenericMemberExtFun visibility:public modality:FINAL <TF> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.castGenericMemberExtFun.TF flags:[]'
          TYPE_OP type=<root>.Host.castGenericMemberExtFun.TF origin=CAST typeOperand=<root>.Host.castGenericMemberExtFun.TF
            typeOperand: TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any?]
            GET_VAR 'VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]' type=kotlin.Any origin=null
    PROPERTY name:castMemberExtVal visibility:public modality:FINAL flags:[val]
      FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.T flags:[]
        correspondingProperty: PROPERTY name:castMemberExtVal visibility:public modality:FINAL flags:[val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
        $receiver: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN name:<get-castMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<<root>.Host.T>, $receiver:kotlin.Any) returnType:<root>.Host.T flags:[]'
            TYPE_OP type=<root>.Host.T origin=CAST typeOperand=<root>.Host.T
              typeOperand: TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
              GET_VAR 'VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]' type=kotlin.Any origin=null
    PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL flags:[val]
      FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:<root>.Host<<root>.Host.T>, $receiver:<root>.Host.<get-castGenericMemberExtVal>.TV) returnType:<root>.Host.<get-castGenericMemberExtVal>.TV flags:[]
        correspondingProperty: PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL flags:[val]
        TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any?]
        $this: VALUE_PARAMETER name:<this> type:<root>.Host<<root>.Host.T> flags:[]
        $receiver: VALUE_PARAMETER name:<this> type:<root>.Host.<get-castGenericMemberExtVal>.TV flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:<root>.Host<<root>.Host.T>, $receiver:<root>.Host.<get-castGenericMemberExtVal>.TV) returnType:<root>.Host.<get-castGenericMemberExtVal>.TV flags:[]'
            TYPE_OP type=<root>.Host.<get-castGenericMemberExtVal>.TV origin=CAST typeOperand=<root>.Host.<get-castGenericMemberExtVal>.TV
              typeOperand: TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any?]
              GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Host.<get-castGenericMemberExtVal>.TV flags:[]' type=<root>.Host.<get-castGenericMemberExtVal>.TV origin=null
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
