// CHECK:
//   Mangled name: A
//   Public signature: /A|null[0]
class A<T : Any?> {
  // CHECK:
  //   Mangled name: A#<init>!1:0(){}
  //   Public signature: /A.<init>|5547349096232763669[0]
  //   Public signature debug description: <init>!1:0(){}
  constructor($context_receiver_0: T) /* primary */
  // CHECK JVM_IR:
  //   Mangled name computed from Ir:         A.contextReceiverField0
  //   Mangled name computed from Descriptor: A{}contextReceiverField0#jf
  // CHECK JS_IR NATIVE:
  //   Mangled name computed from Ir:         A.contextReceiverField0
  //   Mangled name computed from Descriptor: A{}contextReceiverField0
  private /* final field */ val contextReceiverField0: T

}

// CHECK:
//   Mangled name: B
//   Public signature: /B|null[0]
class B<P : Any?> {
  // CHECK:
  //   Mangled name: B#<init>!kotlin.collections.Collection<1:0>(){}
  //   Public signature: /B.<init>|-5453957848603821578[0]
  //   Public signature debug description: <init>!kotlin.collections.Collection<1:0>(){}
  constructor($context_receiver_0: Collection<P>) /* primary */
  // CHECK JVM_IR:
  //   Mangled name computed from Ir:         B.contextReceiverField0
  //   Mangled name computed from Descriptor: B{}contextReceiverField0#jf
  // CHECK JS_IR NATIVE:
  //   Mangled name computed from Ir:         B.contextReceiverField0
  //   Mangled name computed from Descriptor: B{}contextReceiverField0
  private /* final field */ val contextReceiverField0: Collection<P>

}

// CHECK:
//   Mangled name: #bar@kotlin.collections.Collection<kotlin.Int>(){}
//   Public signature: /bar|-6231113953181180683[0]
//   Public signature debug description: bar@kotlin.collections.Collection<kotlin.Int>(){}
fun Collection<Int>.bar(): Unit

// CHECK:
//   Mangled name: #foo@kotlin.Int(){}
//   Public signature: /foo|4521317896132265411[0]
//   Public signature debug description: foo@kotlin.Int(){}
fun Int.foo(): Unit

