FILE /typeAliasCtorForGenericClass.kt
  CLASS CLASS A
    $this: VALUE_PARAMETER this@A: A<Q>
    TYPE_PARAMETER <Q>
    CONSTRUCTOR public constructor A<Q>(q: Q)
      VALUE_PARAMETER value-parameter q: Q
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='A'
    PROPERTY public final val q: Q
      FIELD PROPERTY_BACKING_FIELD public final val q: Q
        EXPRESSION_BODY
          GET_VAR 'value-parameter q: Q' type=Q origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-q>(): Q
        $this: VALUE_PARAMETER this@A: A<Q>
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-q>(): Q'
            GET_FIELD 'q: Q' type=Q origin=null
              receiver: GET_VAR 'this@A: A<Q>' type=A<Q> 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
  TYPEALIAS typealias B = A<X> type=A<X>
  TYPEALIAS typealias B2 = A<A<T>> type=A<A<T>>
  FUN public fun bar(): kotlin.Unit
    BLOCK_BODY
      VAR val b: B<kotlin.Int> /* = A<kotlin.Int> */
        CALL 'constructor A(Int)' type=A<kotlin.Int> origin=null
          <Q>: null
          q: CONST Int type=kotlin.Int value='2'
      VAR val b2: B2<kotlin.Int> /* = A<A<kotlin.Int>> */
        CALL 'constructor A(A<Int>)' type=A<A<kotlin.Int>> origin=null
          <Q>: null
          q: GET_VAR 'b: B<Int> /* = A<Int> */' type=B<kotlin.Int> /* = A<kotlin.Int> */ origin=null

