FILE fqName:<root> fileName:/dataClassesGeneric.kt
  CLASS CLASS name:Test1 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    CONSTRUCTOR visibility:public <> (x:<root>.Test1.T) returnType:<root>.Test1<<root>.Test1.T> flags:[primary]
      VALUE_PARAMETER name:x index:0 type:<root>.Test1.T flags:[]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test1 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]'
    PROPERTY name:x visibility:public modality:FINAL flags:[val]
      FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test1.T visibility:public flags:[final]
        EXPRESSION_BODY
          GET_VAR 'VALUE_PARAMETER name:x index:0 type:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]
        correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test1.T visibility:public flags:[final]' type=<root>.Test1.T origin=null
              receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]'
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>, x:<root>.Test1.T) returnType:<root>.Test1<<root>.Test1.T> flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]
      VALUE_PARAMETER name:x index:0 type:<root>.Test1.T flags:[]
        EXPRESSION_BODY
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>, x:<root>.Test1.T) returnType:<root>.Test1<<root>.Test1.T> flags:[]'
          CALL 'CONSTRUCTOR visibility:public <> (x:<root>.Test1.T) returnType:<root>.Test1<<root>.Test1.T> flags:[primary]' type=<root>.Test1<<root>.Test1.T> origin=null
            <T>: <root>.Test1.T
            x: GET_VAR 'VALUE_PARAMETER name:x index:0 type:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>) 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:<root>.Test1<<root>.Test1.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>) returnType:kotlin.String flags:[]'
          STRING_CONCATENATION type=kotlin.String
            CONST String type=kotlin.String value="Test1("
            CONST String type=kotlin.String value="x="
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
            CONST String type=kotlin.String value=")"
    FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>) 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:<root>.Test1<<root>.Test1.T> flags:[]
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]
          CONST Int type=kotlin.Int value=0
        SET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Unit origin=EQ
          BLOCK type=kotlin.Int origin=null
            VAR IR_TEMPORARY_VARIABLE name:tmp1 type:<root>.Test1.T flags:[val]
              CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
                $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
            WHEN type=kotlin.Int origin=null
              BRANCH
                if: CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQ
                  arg0: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:<root>.Test1.T flags:[val]' type=<root>.Test1.T origin=null
                  arg1: CONST Null type=kotlin.Nothing? value=null
                then: CONST Int type=kotlin.Int value=0
              BRANCH
                if: CONST Boolean type=kotlin.Boolean value=true
                then: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
                  $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:<root>.Test1.T flags:[val]' type=<root>.Test1.T origin=null
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>) returnType:kotlin.Int flags:[]'
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>, 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:<root>.Test1<<root>.Test1.T> flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:EQEQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQEQ
              arg0: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
              arg1: GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=true
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.Test1<<root>.Test1.T>
              typeOperand: CLASS CLASS name:Test1 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
              GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test1<<root>.Test1.T> flags:[val]
          TYPE_OP type=<root>.Test1<<root>.Test1.T> origin=CAST typeOperand=<root>.Test1<<root>.Test1.T>
            typeOperand: CLASS CLASS name:Test1 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
            GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:NOT visibility:public modality:FINAL <> (arg0:kotlin.Boolean) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
              arg0: CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
                arg0: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
                  $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test1<<root>.Test1.T> flags:[]' type=<root>.Test1<<root>.Test1.T> origin=null
                arg1: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test1<<root>.Test1.T>) returnType:<root>.Test1.T flags:[]' type=<root>.Test1.T origin=GET_PROPERTY
                  $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test1<<root>.Test1.T> flags:[val]' type=<root>.Test1<<root>.Test1.T> origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test1<<root>.Test1.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
          CONST Boolean type=kotlin.Boolean value=true
  CLASS CLASS name:Test2 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number]
    CONSTRUCTOR visibility:public <> (x:<root>.Test2.T) returnType:<root>.Test2<<root>.Test2.T> flags:[primary]
      VALUE_PARAMETER name:x index:0 type:<root>.Test2.T flags:[]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test2 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]'
    PROPERTY name:x visibility:public modality:FINAL flags:[val]
      FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test2.T visibility:public flags:[final]
        EXPRESSION_BODY
          GET_VAR 'VALUE_PARAMETER name:x index:0 type:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]
        correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:<root>.Test2.T visibility:public flags:[final]' type=<root>.Test2.T origin=null
              receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]'
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>, x:<root>.Test2.T) returnType:<root>.Test2<<root>.Test2.T> flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]
      VALUE_PARAMETER name:x index:0 type:<root>.Test2.T flags:[]
        EXPRESSION_BODY
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>, x:<root>.Test2.T) returnType:<root>.Test2<<root>.Test2.T> flags:[]'
          CALL 'CONSTRUCTOR visibility:public <> (x:<root>.Test2.T) returnType:<root>.Test2<<root>.Test2.T> flags:[primary]' type=<root>.Test2<<root>.Test2.T> origin=null
            <T : Number>: <root>.Test2.T
            x: GET_VAR 'VALUE_PARAMETER name:x index:0 type:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>) 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:<root>.Test2<<root>.Test2.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>) returnType:kotlin.String flags:[]'
          STRING_CONCATENATION type=kotlin.String
            CONST String type=kotlin.String value="Test2("
            CONST String type=kotlin.String value="x="
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
            CONST String type=kotlin.String value=")"
    FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>) 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:<root>.Test2<<root>.Test2.T> flags:[]
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]
          CONST Int type=kotlin.Int value=0
        SET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Unit origin=EQ
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
            $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>) returnType:kotlin.Int flags:[]'
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>, 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:<root>.Test2<<root>.Test2.T> flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:EQEQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQEQ
              arg0: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
              arg1: GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=true
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.Test2<<root>.Test2.T>
              typeOperand: CLASS CLASS name:Test2 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
              GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test2<<root>.Test2.T> flags:[val]
          TYPE_OP type=<root>.Test2<<root>.Test2.T> origin=CAST typeOperand=<root>.Test2<<root>.Test2.T>
            typeOperand: CLASS CLASS name:Test2 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
            GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:NOT visibility:public modality:FINAL <> (arg0:kotlin.Boolean) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
              arg0: CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
                arg0: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
                  $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test2<<root>.Test2.T> flags:[]' type=<root>.Test2<<root>.Test2.T> origin=null
                arg1: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test2<<root>.Test2.T>) returnType:<root>.Test2.T flags:[]' type=<root>.Test2.T origin=GET_PROPERTY
                  $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test2<<root>.Test2.T> flags:[val]' type=<root>.Test2<<root>.Test2.T> origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test2<<root>.Test2.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
          CONST Boolean type=kotlin.Boolean value=true
  CLASS CLASS name:Test3 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
    CONSTRUCTOR visibility:public <> (x:kotlin.collections.List<<root>.Test3.T>) returnType:<root>.Test3<<root>.Test3.T> flags:[primary]
      VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<<root>.Test3.T> flags:[]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test3 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]'
    PROPERTY name:x visibility:public modality:FINAL flags:[val]
      FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List<<root>.Test3.T> visibility:public flags:[final]
        EXPRESSION_BODY
          GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]
        correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List<<root>.Test3.T> visibility:public flags:[final]' type=kotlin.collections.List<<root>.Test3.T> origin=null
              receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]'
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>, x:kotlin.collections.List<<root>.Test3.T>) returnType:<root>.Test3<<root>.Test3.T> flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]
      VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<<root>.Test3.T> flags:[]
        EXPRESSION_BODY
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>, x:kotlin.collections.List<<root>.Test3.T>) returnType:<root>.Test3<<root>.Test3.T> flags:[]'
          CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.collections.List<<root>.Test3.T>) returnType:<root>.Test3<<root>.Test3.T> flags:[primary]' type=<root>.Test3<<root>.Test3.T> origin=null
            <T>: <root>.Test3.T
            x: GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>) 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:<root>.Test3<<root>.Test3.T> flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.String flags:[]'
          STRING_CONCATENATION type=kotlin.String
            CONST String type=kotlin.String value="Test3("
            CONST String type=kotlin.String value="x="
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
            CONST String type=kotlin.String value=")"
    FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>) 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:<root>.Test3<<root>.Test3.T> flags:[]
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]
          CONST Int type=kotlin.Int value=0
        SET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Unit origin=EQ
          CALL 'FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
            $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.Int flags:[]'
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>, 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:<root>.Test3<<root>.Test3.T> flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:EQEQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQEQ
              arg0: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
              arg1: GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=true
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.Test3<<root>.Test3.T>
              typeOperand: CLASS CLASS name:Test3 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
              GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test3<<root>.Test3.T> flags:[val]
          TYPE_OP type=<root>.Test3<<root>.Test3.T> origin=CAST typeOperand=<root>.Test3<<root>.Test3.T>
            typeOperand: CLASS CLASS name:Test3 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
            GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:NOT visibility:public modality:FINAL <> (arg0:kotlin.Boolean) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
              arg0: CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
                arg0: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
                  $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test3<<root>.Test3.T> flags:[]' type=<root>.Test3<<root>.Test3.T> origin=null
                arg1: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test3<<root>.Test3.T>) returnType:kotlin.collections.List<<root>.Test3.T> flags:[]' type=kotlin.collections.List<<root>.Test3.T> origin=GET_PROPERTY
                  $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test3<<root>.Test3.T> flags:[val]' type=<root>.Test3<<root>.Test3.T> origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test3<<root>.Test3.T>, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
          CONST Boolean type=kotlin.Boolean value=true
  CLASS CLASS name:Test4 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Test4 flags:[]
    CONSTRUCTOR visibility:public <> (x:kotlin.collections.List<kotlin.String>) returnType:<root>.Test4 flags:[primary]
      VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.String> flags:[]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test4 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]'
    PROPERTY name:x visibility:public modality:FINAL flags:[val]
      FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List<kotlin.String> visibility:public flags:[final]
        EXPRESSION_BODY
          GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]
        correspondingProperty: PROPERTY name:x visibility:public modality:FINAL flags:[val]
        $this: VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]'
            GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.collections.List<kotlin.String> visibility:public flags:[final]' type=kotlin.collections.List<kotlin.String> origin=null
              receiver: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]'
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test4, x:kotlin.collections.List<kotlin.String>) returnType:<root>.Test4 flags:[]
      $this: VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]
      VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.String> flags:[]
        EXPRESSION_BODY
          CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
            $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.Test4, x:kotlin.collections.List<kotlin.String>) returnType:<root>.Test4 flags:[]'
          CALL 'CONSTRUCTOR visibility:public <> (x:kotlin.collections.List<kotlin.String>) returnType:<root>.Test4 flags:[primary]' type=<root>.Test4 origin=null
            x: GET_VAR 'VALUE_PARAMETER name:x index:0 type:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test4) 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:<root>.Test4 flags:[]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.Test4) returnType:kotlin.String flags:[]'
          STRING_CONCATENATION type=kotlin.String
            CONST String type=kotlin.String value="Test4("
            CONST String type=kotlin.String value="x="
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
            CONST String type=kotlin.String value=")"
    FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test4) 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:<root>.Test4 flags:[]
      BLOCK_BODY
        VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]
          CONST Int type=kotlin.Int value=0
        SET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Unit origin=EQ
          CALL 'FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=null
            $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
              $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.Test4) returnType:kotlin.Int flags:[]'
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_result type:kotlin.Int flags:[var]' type=kotlin.Int origin=null
    FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test4, 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:<root>.Test4 flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
      BLOCK_BODY
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:EQEQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EQEQEQ
              arg0: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
              arg1: GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test4, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=true
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.Test4
              typeOperand: CLASS CLASS name:Test4 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
              GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test4, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test4 flags:[val]
          TYPE_OP type=<root>.Test4 origin=CAST typeOperand=<root>.Test4
            typeOperand: CLASS CLASS name:Test4 modality:FINAL visibility:public flags:[data] superTypes:[kotlin.Any]
            GET_VAR 'VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]' type=kotlin.Any? origin=null
        WHEN type=kotlin.Unit origin=null
          BRANCH
            if: CALL 'FUN IR_BUILTINS_STUB name:NOT visibility:public modality:FINAL <> (arg0:kotlin.Boolean) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
              arg0: CALL 'FUN IR_BUILTINS_STUB name:EQEQ visibility:public modality:FINAL <> (arg0:kotlin.Any?, arg1:kotlin.Any?) returnType:kotlin.Boolean flags:[]' type=kotlin.Boolean origin=EXCLEQ
                arg0: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
                  $this: GET_VAR 'VALUE_PARAMETER name:<this> type:<root>.Test4 flags:[]' type=<root>.Test4 origin=null
                arg1: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:<root>.Test4) returnType:kotlin.collections.List<kotlin.String> flags:[]' type=kotlin.collections.List<kotlin.String> origin=GET_PROPERTY
                  $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_other_with_cast type:<root>.Test4 flags:[val]' type=<root>.Test4 origin=null
            then: RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test4, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
              CONST Boolean type=kotlin.Boolean value=false
        RETURN type=kotlin.Nothing from='FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.Test4, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]'
          CONST Boolean type=kotlin.Boolean value=true
