FILE /constructor.kt
  CLASS CLASS Test1
    $this: VALUE_PARAMETER this@Test1: Test1<T1, T2>
    TYPE_PARAMETER <T1>
    TYPE_PARAMETER <T2>
    CONSTRUCTOR public constructor Test1<T1, T2>(x: T1, y: T2)
      VALUE_PARAMETER value-parameter x: T1
      VALUE_PARAMETER value-parameter y: T2
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test1'
    PROPERTY public final val x: T1
      FIELD PROPERTY_BACKING_FIELD public final val x: T1
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: T1' type=T1 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): T1
        $this: VALUE_PARAMETER this@Test1: Test1<T1, T2>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): T1'
            GET_FIELD 'x: T1' type=T1 origin=null
              receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> origin=null
    PROPERTY public final val y: T2
      FIELD PROPERTY_BACKING_FIELD public final val y: T2
        EXPRESSION_BODY
          GET_VAR 'value-parameter y: T2' type=T2 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-y>(): T2
        $this: VALUE_PARAMETER this@Test1: Test1<T1, T2>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-y>(): T2'
            GET_FIELD 'y: T2' type=T2 origin=null
              receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> origin=null
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any
  CLASS CLASS Test2
    $this: VALUE_PARAMETER this@Test2: Test2
    CONSTRUCTOR public constructor Test2(x: kotlin.Int, y: kotlin.String)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      VALUE_PARAMETER value-parameter y: kotlin.String
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test2'
    PROPERTY public final val y: kotlin.String
      FIELD PROPERTY_BACKING_FIELD public final val y: kotlin.String
        EXPRESSION_BODY
          GET_VAR 'value-parameter y: String' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-y>(): kotlin.String
        $this: VALUE_PARAMETER this@Test2: Test2
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-y>(): String'
            GET_FIELD 'y: String' type=kotlin.String origin=null
              receiver: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
    CLASS CLASS TestInner
      $this: VALUE_PARAMETER this@TestInner: TestInner<Z>
      TYPE_PARAMETER <Z>
      CONSTRUCTOR public constructor TestInner<Z>(z: Z)
        $outer: VALUE_PARAMETER this@Test2: Test2
        VALUE_PARAMETER value-parameter z: Z
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
          INSTANCE_INITIALIZER_CALL classDescriptor='TestInner'
      PROPERTY public final val z: Z
        FIELD PROPERTY_BACKING_FIELD public final val z: Z
          EXPRESSION_BODY
            GET_VAR 'value-parameter z: Z' type=Z origin=INITIALIZE_PROPERTY_FROM_PARAMETER
        FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-z>(): Z
          $this: VALUE_PARAMETER this@TestInner: TestInner<Z>
          BLOCK_BODY
            RETURN type=kotlin.Nothing from='<get-z>(): Z'
              GET_FIELD 'z: Z' type=Z origin=null
                receiver: GET_VAR 'this@TestInner: TestInner<Z>' type=Test2.TestInner<Z> origin=null
      CONSTRUCTOR public constructor TestInner<Z>(z: Z, i: kotlin.Int)
        $outer: VALUE_PARAMETER this@Test2: Test2
        VALUE_PARAMETER value-parameter z: Z
        VALUE_PARAMETER value-parameter i: kotlin.Int
        BLOCK_BODY
          DELEGATING_CONSTRUCTOR_CALL 'constructor TestInner(Z)'
            <Z>: Z
            $this: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
            z: GET_VAR 'value-parameter z: Z' type=Z origin=null
      FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
        $this: VALUE_PARAMETER this@Any: Any
        VALUE_PARAMETER value-parameter other: kotlin.Any?
      FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
        $this: VALUE_PARAMETER this@Any: Any
      FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
        $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any
  CLASS CLASS Test3
    $this: VALUE_PARAMETER this@Test3: Test3
    CONSTRUCTOR public constructor Test3(x: kotlin.Int, y: kotlin.String = ...)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      VALUE_PARAMETER value-parameter y: kotlin.String = ...
        EXPRESSION_BODY
          CONST String type=kotlin.String value=''
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test3'
    PROPERTY public final val x: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final val x: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): kotlin.Int
        $this: VALUE_PARAMETER this@Test3: Test3
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR 'this@Test3: Test3' type=Test3 origin=null
    PROPERTY public final val y: kotlin.String
      FIELD PROPERTY_BACKING_FIELD public final val y: kotlin.String
        EXPRESSION_BODY
          GET_VAR 'value-parameter y: String = ...' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-y>(): kotlin.String
        $this: VALUE_PARAMETER this@Test3: Test3
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-y>(): String'
            GET_FIELD 'y: String' type=kotlin.String origin=null
              receiver: GET_VAR 'this@Test3: Test3' type=Test3 origin=null
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any
  CLASS CLASS Test4
    $this: VALUE_PARAMETER this@Test4: Test4<T>
    TYPE_PARAMETER <T>
    CONSTRUCTOR public constructor Test4<T>(x: kotlin.Int)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='Test4'
    PROPERTY public final val x: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final val x: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-x>(): kotlin.Int
        $this: VALUE_PARAMETER this@Test4: Test4<T>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-x>(): Int'
            GET_FIELD 'x: Int' type=kotlin.Int origin=null
              receiver: GET_VAR 'this@Test4: Test4<T>' type=Test4<T> origin=null
    CONSTRUCTOR public constructor Test4<T>(x: kotlin.Int, y: kotlin.Int = ...)
      VALUE_PARAMETER value-parameter x: kotlin.Int
      VALUE_PARAMETER value-parameter y: kotlin.Int = ...
        EXPRESSION_BODY
          CONST Int type=kotlin.Int value='42'
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Test4(Int)'
          <T>: T
          x: CALL 'plus(Int): Int' type=kotlin.Int origin=PLUS
            $this: GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
            other: GET_VAR 'value-parameter y: Int = ...' type=kotlin.Int origin=null
    FUN FAKE_OVERRIDE public open override fun equals(other: kotlin.Any?): kotlin.Boolean
      $this: VALUE_PARAMETER this@Any: Any
      VALUE_PARAMETER value-parameter other: kotlin.Any?
    FUN FAKE_OVERRIDE public open override fun hashCode(): kotlin.Int
      $this: VALUE_PARAMETER this@Any: Any
    FUN FAKE_OVERRIDE public open override fun toString(): kotlin.String
      $this: VALUE_PARAMETER this@Any: Any

